#include <54func.h>
void *threadFunc(void *arg)
{
    long i = (long)arg;
    printf("child,i = %ld\n",i);
    return NULL;
}
int main()
{
    //栈区数据：局部变量
    long i = 1000;
    pthread_t tid,tid1,tid2;
    int ret = pthread_create(&tid,NULL,threadFunc,(void *)i);//此刻传入的便是i这个值本身
    THREAD_ERROR_CHECK(ret,"pthread_create");
    ++i;
    int ret1 = pthread_create(&tid1,NULL,threadFunc,(void *)i);
    THREAD_ERROR_CHECK(ret1,"pthread_create");
    ++i;
    int ret2 = pthread_create(&tid2,NULL,threadFunc,(void *)i);
    THREAD_ERROR_CHECK(ret2,"pthread_create");
    sleep(1);
    return 0;

    //总结：发现每次运行结果是不一样的，是因为线程具有并发性，并且执行printf()的时机是不确定的
    //printf()原理：1、将数据拷贝到stdout中。2、将stdout中数据拷贝到文件对象中。3、清除stdout中数据
}
